package com.xhwy.entity;

import com.xhwy.enums.UserState;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.sql.Timestamp;

@Data
public class User implements Serializable{

    public static final Long serialVersionUID = 1L;

    /** 用户编号 */
    private Integer userId ;
    /** 用户名 */
    @NotBlank
    private String userName ;
    /** 密码 */
    @NotBlank
    private String password ;
    /** 昵称 */
    @NotBlank
    private String nickname ;
    /** 用户头像 */
    private String headImg ;
    /** 用户状态;0：正常状态；1：锁定状态 */
    private Integer userState ;
    private Boolean isLock ; //是否锁定
    /** 手机号 */
    @NotBlank
    private String phone ;
    /** 邮箱 */
    @NotBlank
    private String email ;
    /** 创建时间 */
    private Timestamp createTime ;
    /** 更新时间 */
    private Timestamp updateTime ;
    /** 用户类型编号 */
    private Integer userTypeId ;
    private UserType userType ;


    public void setUserState(Integer userState) {
        this.userState = userState;
        this.isLock = userState == UserState.LOCKED.getStateCode() ? true : false;
    }

    public void setIsLock(Boolean isLock) {
        this.isLock = isLock;
        this.userState = isLock ? UserState.LOCKED.getStateCode() : UserState.NORMAL.getStateCode();
    }
}
